[...404].css 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. [data-page="not-found"] {
  2. --color-text: hsl(224, 10%, 10%);
  3. --color-text-secondary: hsl(224, 7%, 46%);
  4. --color-text-dimmed: hsl(224, 6%, 63%);
  5. --color-text-inverted: hsl(0, 0%, 100%);
  6. --color-border: hsl(224, 6%, 77%);
  7. }
  8. [data-page="not-found"] {
  9. @media (prefers-color-scheme: dark) {
  10. --color-text: hsl(0, 0%, 100%);
  11. --color-text-secondary: hsl(224, 6%, 66%);
  12. --color-text-dimmed: hsl(224, 7%, 46%);
  13. --color-text-inverted: hsl(224, 10%, 10%);
  14. --color-border: hsl(224, 6%, 36%);
  15. }
  16. }
  17. [data-page="not-found"] {
  18. --padding: 3rem;
  19. --vertical-padding: 1.5rem;
  20. --heading-font-size: 1.375rem;
  21. @media (max-width: 30rem) {
  22. --padding: 1rem;
  23. --vertical-padding: 0.75rem;
  24. --heading-font-size: 1rem;
  25. }
  26. font-family: var(--font-mono);
  27. color: var(--color-text);
  28. padding: calc(var(--padding) + 1rem);
  29. min-height: 100vh;
  30. display: flex;
  31. align-items: center;
  32. justify-content: center;
  33. a {
  34. color: var(--color-text);
  35. text-decoration: underline;
  36. text-underline-offset: var(--space-0-75);
  37. text-decoration-thickness: 1px;
  38. }
  39. [data-component="content"] {
  40. max-width: 40rem;
  41. width: 100%;
  42. border: 1px solid var(--color-border);
  43. }
  44. [data-component="top"] {
  45. padding: var(--padding);
  46. display: flex;
  47. flex-direction: column;
  48. align-items: center;
  49. gap: calc(var(--vertical-padding) / 2);
  50. text-align: center;
  51. [data-slot="logo-link"] {
  52. text-decoration: none;
  53. }
  54. img {
  55. height: auto;
  56. width: clamp(200px, 85vw, 400px);
  57. }
  58. [data-slot="logo dark"] {
  59. display: none;
  60. }
  61. @media (prefers-color-scheme: dark) {
  62. [data-slot="logo light"] {
  63. display: none;
  64. }
  65. [data-slot="logo dark"] {
  66. display: block;
  67. }
  68. }
  69. [data-slot="title"] {
  70. line-height: 1.25;
  71. font-weight: 500;
  72. text-align: center;
  73. font-size: var(--heading-font-size);
  74. color: var(--color-text);
  75. text-transform: uppercase;
  76. margin: 0;
  77. }
  78. }
  79. [data-component="actions"] {
  80. border-top: 1px solid var(--color-border);
  81. display: flex;
  82. [data-slot="action"] {
  83. flex: 1;
  84. text-align: center;
  85. line-height: 1.4;
  86. padding: var(--vertical-padding) 1rem;
  87. text-transform: uppercase;
  88. font-size: 1rem;
  89. a {
  90. display: block;
  91. width: 100%;
  92. height: 100%;
  93. color: var(--color-text);
  94. text-decoration: underline;
  95. text-underline-offset: var(--space-0-75);
  96. text-decoration-thickness: 1px;
  97. }
  98. }
  99. [data-slot="action"] + [data-slot="action"] {
  100. border-left: 1px solid var(--color-border);
  101. }
  102. @media (max-width: 40rem) {
  103. flex-direction: column;
  104. [data-slot="action"] + [data-slot="action"] {
  105. border-left: none;
  106. border-top: 1px solid var(--color-border);
  107. }
  108. }
  109. }
  110. }